<?php

namespace CHOMP\SGIBundle\Services;
use Symfony\Component\HttpFoundation\Request;


class ADUsuarios 
{

	public function insertADUsuarios(){

			$sUsuario = "Administrator";
			$sClave = "Matias123";
			$sEmpresa = "sgicaece.lan";
			$dn = 'DC=sgicaece,DC=lan';

			$ldapconn = ldap_connect("$sEmpresa",389) or die("ERROR: No se pudo conectar con el Servidor.");

			if ($ldapconn){
			        ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION,3);
			        ldap_set_option($ldapconn, LDAP_OPT_REFERRALS,0);
			        $ldapbind = @ldap_bind($ldapconn, "$sUsuario@$sEmpresa", $sClave);
			        if ($ldapbind) {

			$dn = "OU=Usuarios,OU=MicroCentro,DC=sgicaece,DC=lan";
			$filter = "samaccountname=*";

			// Busco en la base y filro los usuarios

			$search = ldap_search($ldapconn, $dn, $filter)
			    or die ("La busqueda fallo");

			$entries = ldap_get_entries($ldapconn, $search);

			                $registros_encontrados = $entries["count"];
			                $registros = "0";

			                for($registros > 0; $registros < $registros_encontrados; $registros++) {

					/* Referencia valores entregados AD
			                LOGIN = ($entries[$registros][samaccountname][0]);
					Primer Nombre = ($entries[$registros][givenname][0]);
					Ultimo Nombre = ($entries[$registros][sn][0]);
					Email = ($entries[$registros][mail][0]);
					Telefono = ($entries[$registros][telephonenumber][0]);
					Compania = ($entries[$registros][company][0]);
					Rol = ($entries[$registros][title][0]);
					Estado habilitado / deshabilitado = ($entries[$registros][useraccountcontrol][0]);
					*/


					// Mati modifica el host, usuario y password de tu base de datos con tus variables

			    		$conBase = mysql_connect("localhost", "root", "chomp");
			    		mysql_select_db("symfony", $conBase);

				
					// Consulto si existe usuario 
					$usuarioAuth = ($entries[$registros][samaccountname][0]);
			    		$consul ="SELECT * FROM usuario WHERE login ='".$usuarioAuth."'";

			    		$result = mysql_query($consul,$conBase) or die(mysql_error());
			    	//	echo mysql_num_rows($result);

					// Consutlo si la empresa existe
			    		$empresa = ($entries[$registros][company][0]);
					echo "Empresa AD = " . $empresa;
					$empresaIDQuery = "SELECT id FROM empresa WHERE nombre ='".$empresa."'";
					
					$empresaResult = mysql_query($empresaIDQuery, $conBase) or die(mysql_error());
					$empresaID = '';
					$rolID = '';
					if  (mysql_num_rows($empresaResult) > 0) {
				
						$empresaID = mysql_result($empresaResult, 0);
				                //Cosulto Roles de Empresa
			        	        $rolDeUsuario = ($entries[$registros][title][0]);
			                	$rolIDQuery = "SELECT id FROM Rol WHERE empresa_id ='".$empresaID."' and nombre ='".$rolDeUsuario."'";

			                	$rolResult = mysql_query($rolIDQuery, $conBase) or die(mysql_error());
			                	if  (mysql_num_rows($rolResult) > 0) {
			                        	$rolID = mysql_result($rolResult, 0);
						}else {
							$rolIDQuery = "SELECT id FROM Rol WHERE empresa_id ='".$empresaID."' and nombre ='Cliente Externo'";
				                        $rolResult = mysql_query($rolIDQuery, $conBase) or die(mysql_error());
				                        if  (mysql_num_rows($rolResult) > 0) {
			        	                        $rolID = mysql_result($rolResult, 0);
							}
						} 

					}else{
						$empresaID = '1';
						$rolID = 4; 

					}
			                // 514 codigo usuario deshabilitado 
			                if ($entries[$registros][useraccountcontrol][0] == "514") {
			                	$entries[$registros][useraccountcontrol][0] = "1";
			                }
			                // 512 codigo usuario habilitado
			                if ($entries[$registros][useraccountcontrol][0] == "512") {
			                        $entries[$registros][useraccountcontrol][0] = "0";
			                } 

					$slq = '';

			    		if (mysql_num_rows($result) > 0) {
			        		//echo "Error, El usuario " .$usuarioAuth. "ya existe";
						$sql = "UPDATE usuario set nombre = '".($entries[$registros][givenname][0])."' , apellido = '".($entries[$registros][sn][0])."' , email = '".($entries[$registros][mail][0])."' , telefono = '".($entries[$registros][telephonenumber][0])."' , passwordExpiryDate = '2016-05-26' , estado = '".($entries[$registros][useraccountcontrol][0])."' , rol_id = '".$rolID."' , empresa_id = '".$empresaID."' WHERE login = '".$usuarioAuth."'"; 
			    		} else {
			/*			// 514 codigo usuario deshabilitado 
			 			if ($entries[$registros][useraccountcontrol][0] == "514") {
						$entries[$registros][useraccountcontrol][0] = "1";
						}
						// 512 codigo usuario habilitado
						if ($entries[$registros][useraccountcontrol][0] == "512") {
						$entries[$registros][useraccountcontrol][0] = "0";
						}	
			  */
			    		$sql = "INSERT INTO usuario(empresa_id, rol_id, login , nombre , apellido , email , telefono , passwordExpiryDate, estado )
				    VALUES ('".$empresaID."' , '".$rolID."', '".($entries[$registros][samaccountname][0])."' , '".($entries[$registros][givenname][0])."' , '".($entries[$registros][sn][0])."' , '".($entries[$registros][mail][0])."' , '".($entries[$registros][telephonenumber][0])."' , 
			'2016-05-26' , '".($entries[$registros][useraccountcontrol][0])."')";



					}
				$sql = mysql_query($sql, $conBase) or die(mysql_error());
				}

			        } else {
			                echo "Usuario no autenticado...".ldap_error($ldapconn);;
			        }
			}

			ldap_close($ldapconn);
	}
}
?>
